package plannegocio.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;

import plannegocio.excepcion.DAOExcepcion;
import plannegocio.modelo.BeanMenu;
import plannegocio.modelo.Emprendedor;
import plannegocio.modelo.PlanNegocio;
import plannegocio.util.ConexionBD;

public class MenuDAO extends BaseDAO {

	public Collection<BeanMenu> obtenerMenuXPersona(int tipoPersonaId)
			throws DAOExcepcion {
		Collection<BeanMenu> lista = new ArrayList<BeanMenu>();
		Connection con = null;
		PreparedStatement stmt = null;
		ResultSet rs = null;
		try {
			con = ConexionBD.obtenerConexion();
			String query = "SELECT m.IdMenu, m.idPadre, m.GlosaMenu, m.UrlMenu, m.isVisible, m.RutaJerarquia, m.TipoMenu "
					+ "FROM plan_negocio.tb_menu m "
					+ "INNER JOIN plan_negocio.tb_MenuxUsuario mp ON (M.IdMenu = mp.IdMenu)  "
					+ "INNER JOIN plan_negocio.tb_tipopersona p ON (p.tipoPersonaId = mp.tipoPersonaId) "
					+ "WHERE P.tipoPersonaId = ?";
			
			
			stmt = con.prepareStatement(query);
			stmt.setInt(1, tipoPersonaId);

			rs = stmt.executeQuery();

			Emprendedor objEmprendedor;
			PlanNegocio objPlanNegocio;
			BeanMenu obj;
			while (rs.next()) {
				obj = new BeanMenu();
				obj.setIdMenu(rs.getInt("IdMenu"));
				obj.setIdPadre(rs.getInt("idPadre"));
				obj.setGlosaMenu(rs.getString("GlosaMenu"));
				obj.setUrlMenu(rs.getString("UrlMenu"));
				obj.setIsVisible(rs.getString("isVisible"));
				obj.setRutaJerarquia(rs.getString("RutaJerarquia"));
				obj.setTipoMenu(rs.getInt("TipoMenu"));
				lista.add(obj);
			}

		} catch (SQLException e) {
			System.err.println(e.getMessage());
			throw new DAOExcepcion(e.getMessage());
		} finally {
			this.cerrarResultSet(rs);
			this.cerrarStatement(stmt);
			this.cerrarConexion(con);
		}
		System.out.println(lista.size());
		return lista;
	}

}
